A multidimensional database model contains data corresponding to a point having values in multidimensional space that is defined by a plurality of dimensions. The multidimensional database model is generally effective in analyzing the data in a multifaceted manner. Based upon a predetermined rule, it is a basic function to correspond a value of data that corresponds to one or more of points in the multidimensional space to other values corresponding to other points. For example, the above basic function is disclosed in “OLAP Practical Data Warehouse,” Toyoshima and Kimura, pp76-79, (1997); “OLAP Solutions Building Multidimensional Information Systems,” Thomsen, pp. 89-104, (1997). The above described basic function is useful in constructing a database with minimally necessary data input as well as in retrieving data that has been already calculated.
In a multidimensional database model, the multidimensional space as defined by a plurality of dimensions is called “cube.” The dimensions in the cube is generally expressed by a set of members that have a layer structure. A point in the multidimensional space as defined by an arbitrary member at each dimension is named “cell,” and a value of the data corresponding to the cell is “a cell value.” For example, using multidimensional data represents sales units and sales amounts of products sold by a company A in Japan, the cube includes a time dimension, a retail store dimension, a merchandise dimension and a unit or measure dimension.
To illustrate the above related example, FIG. 20 is a diagram for describing conventional layer or hierarchy structure information storing layer information on members for each dimension. A layer or hierarchy 4301 for the time dimension has “1999” as the highest member or the highest member in the layer structure, and the highest member 1999 in turn has two child members, 1999Q1 and 1999Q2. Similarly, the child member 1999Q1 has grand child members, 199901, 199902 and 199903. By the same token, the other child member 1999Q2 has grand child members, 199904 and 199905. The grand children members, 199901, 199902, 199903, 199904 and 199905 do not have any great grand children and are defined as the lowest members in the above example. The level is accordingly assigned to the members based upon a position in the layer. The lowest members are situated at Level 0 while the direct parent of the lowest members is located at Level 1. Similarly, the direct parent of Level 1 members are located at Level 2. The highest members are located at the level that is equal to the number of layers minus one.
Still referring to FIG. 20, a layer 4302 for a retail store dimension has the all sales territories or nation wide territories as the highest member. The highest member has two child members including Eastern Japan and Western Japan. Eastern Japan further owns two child members including Chiba store and Saitama store. Western Japan further owns two child members including Osaka store and Hiroshima store. Similarly, a layer 4303 for a merchandise dimension has the all merchandises as the highest member. The highest member has two child members including home appliance and audiovisual equipment (AV). Home Appliances further owns two child members including washers and refrigerators. AV further owns two child members including television sets and video equipment. Lastly, a layer 4304 in a unit dimension has two members including a number of sales and an amount of sales but, the members in the unit dimension have no layer structure.
Now referring to FIG. 21, a diagram illustrates an example of conventional layer structure definition data. The conventional layer structure definition data 3201 through 3204 respectively define the time dimension, the retail store dimension, the merchandise dimension and the unit dimension, and each of the conventional layer structure definition data 3201 through 3204 contains a plurality of records that are separated by new line characters. Each of the records has members that are separated by commas, and the separation format is called comma separated value format (CSV). One record potentially includes all the members from the highest member to the lowest member. The conventional layer structure definition data 3201 through 3203 each is organized to list records according to the level. That is, in the above example, a record at Level 2 is followed by a record at Level 1 and then by a record at Level 0. For the layer structure definition data 3204, a record has only members at Level 0.
Now referring to FIG. 22, a diagram illustrates an example of conventional data. The data 3301 is stored in the cube and in the above described CSV format. Each of the record includes members and corresponding cell values. In the example, each record thus contains five fields respectively for information on month/year, a retail store, a merchandise name, a number of sales and an amount of sales. The first three fields are respectively from the time dimension, the retail store dimension and the merchandise dimension. On the other hand, the last two fields are cell values representing the number of sales and the amount of sales from the unit dimension.
FIG. 23 is a diagram illustrating an exemplary display of multidimensional data. The exemplary display is a screen multidimensional data analysis on a terminal device. The horizontal axis includes members on the time dimension while the vertical axis includes members on the retail store dimension. All members are displayed from the above dimensions. On the other hand, as shown in the upper left corner of the display, only one member such as television is displayed in the merchandise dimension and only one member such as sales amount is displayed in the unit dimension. As you can see, the above exemplary screen display shows the sales amount for televisions at each retail store for each quarter. For example, the data representing the member 1999Q1 for the time dimension is a total value of the data 199901, 199902 and 199903. Similarly, the data representing the member, Eastern Japan for the time dimension is a total value of the data Chiba store and Saitama store. According to the previously noted dimensional layer structure, the data is a total value. One of the basic functions of the multidimensional database management system is to search the total value. To obtain more detailed data, other basic functions include a drill down function for changing a currently displayed member to its child member or a drill up function for conversely changing a currently displayed member to its parent member.
In order to respond to a search request for a total value at a high speed, other multidimensional database functions store previously calculated total values on an as-necessary basis. For example, Japanese Patent Publication Hei 9-265479 discloses techniques to search and aggregate multidimensional data at a high speed. Another example, Japanese Patent Publication Hei 11-224261 discloses storage and search techniques for data having discontinuous members in a multidimensional database. There are relatively frequent needs to store in a multidimensional database some member data that is not included in the current layer and then to analyze the data. Using the example of sales data, the above described data includes a new store to be opened and a new product to be sold, and the new data is to be included in the multidimensional data. To analyze sales data for he new products such as books and music CDs that have new titles almost on a daily basis, the multidimensional data layer needs to be updated at a high frequency.
Now referring to FIG. 24, a diagram illustrates conventional exemplary data that includes members that are not registered in the layer structure information. For example, a first field of a first record is a member 3311 that has a value of “199906.” The member 3311 is unregistered in the time dimensional layer 4301 as shown in FIG. 20. Similarly, a second field of a second record is a member 3312 that has a value of “Yokohama Store.” The member 3312 is unregistered in the retail store dimensional layer 4302 as shown in FIG. 20. Lastly, a third field of a third record is a member 3313 that has a value of “PCs.” The member 3313 is unregistered in the merchandise dimensional layer 4303 as shown in FIG. 20. In general, there are two ways to process the above described unregistered member data. The first way is to regard the unregistered member data to be invalid, and its corresponding record that contains the unregistered member data is also regarded as being invalid. The second way is to regard the unregistered member data to be new.
The above two options are further related to the database operations. The first processing option terminates the data handling operation upon detecting a record containing any unregistered member data. Alternatively, the data handling operation skips the record to a next one according to the first processing option. The data handling operation terminates by issuing an alarm signal, and the unregistered member remains to be unregistered at the layer information. Of course, the corresponding record is not included in the database and remains excluded from analysis. On the other hand, the above second processing option registers the currently unregistered member. In registering the new member, there are two ways to find a new position in the layer. One position is created at a new location as a new member without having any relation to the existing members.
Now referring to FIG. 25, a diagram illustrates layer structure information for conventional data that includes members that are not previously registered in the layer structure information. The layer 4305 indicates that an unregistered member, “Yokohama store” is now registered as an independent member 4306 in the layer information structure 4305. The above described processing allows the incorporation of the unregistered member 4306 into the layer of the multidimensional database. Despite the incorporation of the previously unregistered member 4306, during an analysis stage, since the newly incorporated member 4306 is isolated from other members, the isolated member 4306 is not reflected in the summary. Furthermore, since the isolated member 4306 cannot be reached by a drill up function or a drill down function, the isolated member 4306 is not included in any analysis. In other words, the above described isolated position is mere temporary until the newly added member 4306 is officially and functionally incorporated into the layer structure information.
The second processing option avoids the above described difficulty by providing a predetermined parent member for orphan members or unregistered members and assigning the unregistered members to the predetermined parent member. In layer 4307, the predetermined parent member 4308 is “others,” and the previously unregistered member 4309 is “personal computers.” The newly incorporated member 4309 is now linked under the predetermined parent member 4308 in this example. Because of the linkage between the members 4308 and 4309, the newly incorporated member 4309 is now included in an analysis of the layer 4307. The newly incorporated member 4309 is also reached from other members by drilling up or down. Despite the above described improvement, since the layer generally does not have a layer structure that a user may expect, the analysis often lead to unexpected results. Although Japanese Patent Publication Hei 11-102368 discloses a technique to determine a group or member name based upon a character pattern of the unregistered member, the disclosed technique is silent on adding a new group in the existing layer information.